package com.cy.jt.demo.controller;


import org.springframework.context.annotation.Lazy;
import org.springframework.web.bind.annotation.*;

import javax.sound.midi.Soundbank;
import java.util.Arrays;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;

/*通过此对象演示C(create)RUD请求的处理
 * restful  规范=动作+url
 * @GetMapping  查询数据
 * @PostMapping  提交数据
 * @PutMapping  修改数据
 * @DeleteMapping  删除数据
 * @PatchMapping   更新部分数据*/
@Lazy
@RestController
@RequestMapping("/demo/")
public class Democontroller {
    private byte[] array=new byte[1024*1024*1024];//如果是一个大的
    public Democontroller(){
        System.out.println("DemoController");
    }
//    private  int count;
    @GetMapping("{id}")
    public  String doRetrieveById(@PathVariable Integer id){
//        count++;
        return "find  result by "+id;
    }



//    private  StringBuffer sb=new StringBuffer();
//    @PutMapping()//更新
//    public String doupdate(@RequestBody Map<String, Object> map) {
//        return map.toString() + "is updated";
//    }

    //    @DeleteMapping("/do")
//    请求路径 http://ip:port/demo/
//    请求类型  content-type Application/json
//    内容格式{id =1 msg ="hello world"}
    //J.U.C  包下的线程安全的对象（提供了对长整型数据的原子操作，底层CAS算法）  Atomic为前缀的都是安全的
//    private AtomicLong counter=new AtomicLong(1);
//    @GetMapping("{id}")
//    public  String doRetireById(@PathVariable Integer id) throws InterruptedException {
//        String tName =Thread.currentThread().getName();
//        System.out.println(counter.getAndIncrement());
//        //
//        TimeUnit.SECONDS.sleep(3);
//        return  tName+" find result by"+id;
//    }

//    @PostMapping()//保存
//    public String doCreate(@RequestBody Map<String, Object> map) {
//        return map.toString() + "is created";
//    }
//
//    @DeleteMapping("{id}")
////    public  String doDeleteById(Integer...id){
//    public String doDeleteById(@PathVariable Integer... id) {
//        //.....
//        return Arrays.toString(id) + "id deleted";
//    }
//    @GetMapping("{id}")
//    public String doFindByid(Integer id) {
//        return "FindById" + id;
//    }
}
